Many industry-related businesses (e.g., manufacturing companies, electrical utilities, transportation companies, etc.) are employing at least some aspects of the “industrial Internet” or the industrial “Internet of Things” (e.g., industrial IoT, or IIoT) to help manage and employ industrial assets (e.g., power plants, wind turbines, jet engines, and so on) to maximize revenue generated by those assets. To manage such an asset, sensor data and other associated information may be collected on the premises at which the asset is located, possibly processed to some degree on the premises by a computing system, and then transmitted via the Internet or other wide area network to a cloud computing system for further processing. For example, the data received at the cloud computing system may be provided as input to a computation model of the asset to determine various aspects of the asset, such as the estimated time until one or more components of the asset will likely require maintenance or replacement, given current operational parameters and detected conditions.
Depending on the characteristics of particular asset involved, the goals of the responsible business, the state of legacy technology at the business, and other factors, the business may choose to perform at least some processing in one or more on-premises environments instead of in the cloud, or vice-versa. However, the prior art does not provide a mechanism to seamlessly manage computation tasks in such a variety of computing environments. Given that these two or more computing environments typically provide different operating systems, software services, and/or other components of a technology stack, a developer of an application tasked with performing the processing of the data received from the asset may write two or more versions of the application: one for each computing system or platform that may be employed to perform the desired data processing of the asset-related data, as well as software to permit flexible migration of computation tasks across these two or more applications.
The headings provided herein are merely for convenience and do not necessarily affect the scope or meaning of the terms used.